package br.com.dlm.simuladoitil.basicas;

import java.util.List;

public class Categoria extends ObjetoGeral {

    public String nome;
    public String descricao;
    public List<Questao> questoes;

    public Categoria(String nome, String descricao, List<Questao> questoes) {
        this.nome = nome;
        this.descricao = descricao;
        this.questoes = questoes;
    }

    public Categoria(String id, String nome, String descricao, List<Questao> questoes) {
        this.id = id;
        this.nome = nome;
        this.descricao = descricao;
        this.questoes = questoes;
    }

    public int getQuantidadeQuestoesRespondidas() {
        int quantidade = 0;
        for (Questao questao : questoes) {
            if (questao.respondida) {
                quantidade++;
            }
        }
        return quantidade;
    }

    public String getQuantidadeQuestoesRespondidasFormatada() {
        return "(" + getQuantidadeQuestoesRespondidas() + "/" + questoes.size() + ")";
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Categoria)) return false;

        Categoria categoria = (Categoria) o;

        if (!id.equals(categoria.id)) return false;
        if (!descricao.equals(categoria.descricao)) return false;
        if (!nome.equals(categoria.nome)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = nome.hashCode();
        result = 31 * result + descricao.hashCode();
        result = 31 * result + questoes.hashCode();
        return result;
    }
}
